home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Information / Digests / CSMP Digest / volume 1 / csmp-v1-156.txt < prev    next >
Encoding:
Text File  |  1994-12-08  |  42.2 KB  |  1,161 lines  |  [TEXT/R*ch]

  1. C.S.M.P. Digest             Mon, 03 Aug 92       Volume 1 : Issue 156
  2.  
  3. Today's Topics:
  4.  
  5.     HOW TO?: Large Arrays in Think C
  6.     Macapp replacement announced.
  7.     ResolveAlias bug?
  8.     Mac's equivalent to PC's kbhit()?
  9.     Speech Generation info wanted
  10.     How to modify a resource in my application?
  11.     FTP Source?
  12.     SFRead question. (checked FAQ)
  13.  
  14.  
  15.  
  16. The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
  17.  
  18. The digest is a collection of article threads from the internet newsgroup
  19. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  20. regularly and want an archive of the discussions.  If you don't know what a
  21. newsgroup is, you probably don't have access to it.  Ask your systems
  22. administrator(s) for details.  (This means you can't post questions to the
  23. digest.)
  24.  
  25. Each issue of the digest contains one or more sets of articles (called
  26. threads), with each set corresponding to a 'discussion' of a particular
  27. subject.  The articles are not edited; all articles included in this digest
  28. are in their original posted form (as received by our news server at
  29. cs.uoregon.edu).  Article threads are not added to the digest until the last
  30. article added to the thread is at least one month old (this is to ensure that
  31. the thread is dead before adding it to the digest).  Article threads that
  32. consist of only one message are generally not included in the digest.
  33.  
  34. The entire digest is available for anonymous ftp from ftp.cs.uoregon.edu
  35. [128.223.8.8] in the directory /pub/mac/csmp-digest.  The most recent issues
  36. are available from sumex-aim.stanford.edu [36.44.0.6] in the directory
  37. /info-mac/digest/csmp.  If you don't have ftp capability, the sumex archive
  38. has a mail server; send a message with the text '$MACarch help' (no quotes)
  39. to LISTSERV@ricevm1.rice.edu for more information.
  40.  
  41. The digest is also available via email.  Just send a note saying that you
  42. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  43. automatically receive each new issue as it is created.  Sorry, back issues
  44. are not available through the mailing list.
  45.  
  46. Send administrative mail to mkelly@cs.uoregon.edu.
  47.  
  48.  
  49. -------------------------------------------------------
  50.  
  51. From: niko@iastate.edu (Nikolaus E Schuessler)
  52. Subject: HOW TO?: Large Arrays in Think C
  53. Organization: Iowa State University, Ames, IA
  54. Date: Tue, 23 Jun 1992 15:46:57 GMT
  55.  
  56. In article <1992Jun23.142654.3072@ncsu.edu> chouck@eos.ncsu.edu (CHRISTOPHER  HOUCK) writes:
  57. >Is there any way to dimension an array of [625][64] floats in Think C?
  58. >I am getting Illegal Array bounds and Code overflow compiler errors.  
  59. >Increasing the partion doesn't seem to affect this, and the code is in
  60. >its own segment.  Any help would GREATLY be appreciated
  61. >
  62. >Thank you,
  63. >
  64. >Christopher R. Houck
  65. >chouck@eos.ncsu.edu
  66.  
  67.  
  68. Yes, but you have to use some C tricks to do it.  (This problem shows up
  69. a lot when porting unix code.)
  70.  
  71. First declare a pointer to a two dimensional array of floats. The syntax
  72. is something like this:
  73.  
  74. float (*mypointer)[64];
  75.  
  76.  
  77. Then, malloc the memory (64 * 625 * sizeof(float)) at runtime and assign
  78. the pointer to mypointer (you probably have to cast the pointer so the
  79. types match).
  80.  
  81. Then you have the equivalent of the 'float[625][64];' declaration.
  82.  
  83.  
  84. Question: Is the problem that the segment loader cannot determine when
  85.           to load in segments belonging to arrays or something else?
  86.           Can't THINK C just allocate the space in the project/executable
  87.           and let the segment loader take over ???
  88.  
  89.           If not, why not automatically filter out big arrays and generate
  90.           the needed code to allocate the space at runtime so a huge array
  91.           declarations compile and work  properly?  That would make porting
  92.           code a lot easier.
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105. - -- 
  106. - ------------------------------------------------------------------------------
  107. Niko Schuessler                                             niko@iastate.edu
  108. Project Vincent Systems Manager
  109. Iowa State University              
  110.  
  111. +++++++++++++++++++++++++++
  112.  
  113. From: suitti@ima.isc.com (Stephen Uitti)
  114. Organization: Interactive Systems, Cambridge, MA 02138-5302
  115. Date: Tue, 23 Jun 1992 19:16:37 GMT
  116.  
  117. In article <1992Jun23.142654.3072@ncsu.edu> chouck@eos.ncsu.edu (CHRISTOPHER  HOUCK) writes:
  118. >Is there any way to dimension an array of [625][64] floats in Think C?
  119. >I am getting Illegal Array bounds and Code overflow compiler errors.  
  120. >Increasing the partion doesn't seem to affect this, and the code is in
  121. >its own segment.  Any help would GREATLY be appreciated
  122.  
  123. This comes up fairly often.
  124.  
  125. 625 * 64 = 40,000.  Even if this were single byte objects, it
  126. would exceed the 32K limit.  Yes, this is a pain, but it isn't
  127. as bad as it sounds.
  128.  
  129. You can get the same effect, but allocating the data space dynamically.
  130.  
  131. typedef float FloatArray[625][64];
  132.  
  133. FloatArray *myFloatArrayp;
  134.  
  135. myFloatArrayp = (FloatArray *) NewPtr(sizeof(enctable));
  136. /* check for errors here */
  137.  
  138. #define myFloatArray (*myFloatArray)
  139.  
  140. Alternately, you can use the malloc() package.
  141.  
  142. Stephen.
  143. suitti@ima.isc.com
  144.  
  145. ---------------------------
  146.  
  147. From: wirehead@cheshire.oxy.edu (David J. Harr)
  148. Subject: Macapp replacement announced.
  149. Organization: Occidental College, Los Angeles, CA 90041 USA.
  150. Date: Tue, 23 Jun 1992 15:35:22 GMT
  151.  
  152.  
  153. I haven't seen this here on the net yet, so I thought I'd post it. This was
  154. posted to the tcl mailing list by John Pugh, jpugh@apple.com.
  155.  
  156. I have no connection with Apple or Symantec, blah, blah, blah.
  157.  
  158. ```````````````````````````````````````````````````````````````````````````````
  159. PRESS RELEASE TEXT
  160. ```````````````````````````````````````````````````````````````````````````````
  161. For Immediate Release
  162.  
  163. Contacts:
  164. Jackie Brinker
  165. Symantec Corporation
  166. (408) 446-7490
  167.  
  168. Jackie Promes
  169. Apple Computer, Inc.
  170. (408) 974-3609
  171.  
  172. Julie McHenry/Lerry Wilson
  173. Wilson McHenry Company
  174. (415) 592-7600
  175.  
  176.  
  177. Apple and Symantec Announce Plan to Help Speed Software Applications
  178. Development
  179.  
  180. Cross-platform Software Development Solution
  181.  
  182. NEW YORK-June 23, 1992-Symantec Corporation (NASDAQ: SYMC) and Apple Computer,
  183. Inc. (NASDAQ: AAPL) today announced a development and marketing agreement to
  184. provide a cross-platform application framework for Apple Macintosh computers
  185. and Microsoft Windows-based PCs.  The agreement is designed to aid commercial
  186. and corporate software developers in quickly creating new applications for
  187. multiple desktop computing platforms.
  188.  
  189. Symantec will provide the cross-platform application framework-known as the
  190. Bedrock framework-that it is currently using internally to develop
  191. applications for Apple Macintosh computers and Microsoft Windows.  Symantec
  192. will leverage Apple engineering resources and Apple's current object-oriented
  193. framework technology, MacApp.  Both Apple and Symantec will use the Bedrock
  194. framework technology internally, and work together to support the developer
  195. community's transition to the Bedrock framework.
  196.  
  197. "Our customers face two major problems: a growing number of applications that
  198. need to be written, and a growing number of desktop computing platforms that
  199. need support," said Gordon Eubanks, president and CEO of Symantec.  "The
  200. Bedrock framework developed from our internal technology, and enhanced by
  201. Apple's experience in object technology, will enable corporate customers and
  202. independent software developers to begin solving these problems."
  203.  
  204. "This agreement will alter the dynamics of the personal computer software
  205. industry by decreasing development complexity and increasing developer
  206. opportunities," said Roger Heinen, senior vice president and general manager of
  207. Apple's Macintosh Software Architecture division.  "Cross-platform development
  208. has been a very important requirement for out developers.  We believe that
  209. Symantec, with Apple's assistance, will deliver the best solution."
  210.  
  211. An application framework provides a common set of building blocks or "objects"
  212. that provide the basic structure for an application.  The framework enables
  213. developers to more quickly and easily create applications while providing the
  214. freedom to innovate.  MacApp, Apple's framework, has been successfully
  215. providing this support for Macintosh developers.  The Bedrock framework extends
  216. state-of-the-art framework technology by enabling developers to use one
  217. framework to develop applications for multiple platforms.
  218.  
  219. By applying the framework approach to cross-platform development, Symantec's
  220. Bedrock framework enables software developers to maintain a single version of
  221. source code for platform-specific versions of an application.  In addition to
  222. shortening the development cycle, the cross-platform framework results in
  223. better product reliability and maintenance, as well as more efficient
  224. localization for global markets.
  225.  
  226. The bedrock technology will be available commercially in the first half of 1993
  227. on Apple Macintosh and Microsoft Windows, with future versions supporting other
  228. desktop platforms such as IBM OS/2, UNIX and Microsoft NT.  The product will be
  229. available internationally through both Apple and Symantec distribution
  230. channels.
  231.  
  232. Symantec Corporation develops, markets and supports a complete line of
  233. application and system software products for IBM compatible PCs and Apple
  234. Macintosh computers, and development tools for leading desktop operating
  235. systems.  Information on the company and products can be obtained by calling:
  236. (800) 441-7234 or (408) 252-3570.
  237.  
  238. Apple Computer, Inc. develops, manufactures and markets computer technology for
  239. use in business, education and government.  A recognized pioneer and innovator
  240. in the personal computer industry, Apple does business in more than 120
  241. countries.
  242.  
  243. Note to Editors:
  244.  
  245. For additional information on the Bedrock applications framework, please call
  246. (415) 592-7600 and request any of the following:
  247.  
  248.    o For technical information, request: Bedrock framework White Paper
  249.    o For market information, request: Development Tools Market Backgrounder
  250.    o For June 23, 1992 press conference remarks request: Symantec/Apple Bedrock
  251. Framework Remarks
  252.    o For hardcopy of June 23, 1992 press presentation, request: Symantec/Apple
  253. press presentation
  254.  
  255.  Bedrock is a trademark of Symantec Corporation.  Apple, the Apple logo,
  256. Macintosh and MacApp are registered trademarks of Apple Computer, Inc.  Other
  257. brands and products are trademarks or registered trademarks of their respective
  258. holders and should be treated as such.
  259.  
  260.  
  261.  
  262.  
  263. ```````````````````````````````````````````````````````````````````````````````
  264. DEVELOPER Q&A TEXT
  265. ```````````````````````````````````````````````````````````````````````````````
  266. CROSS-PLATFORM FRAMEWORK Q & A
  267. 6/23/92
  268.  
  269.  
  270. Q.  What is being announced today?
  271. A.  Symantec Corporation and Apple Computer, Inc. today announced a development
  272.     and marketing agreement to provide a cross-platform application framework,
  273.     known as Bedrock, for Apple Macintosh computers and Microsoft
  274.     Windows-based PCs. The agreement is designed to aid commercial and
  275.     corporate software developers in quickly creating new applications for
  276.     multiple desktop computing platforms.
  277.  
  278. Q.  Is this a product announcement?
  279. A.  No. Apple and Symantec are announcing an agreement to develop a
  280.     cross-platform product. Details and product announcement will follow at a
  281.     time closer to product delivery.
  282.  
  283. Q.  What is an object-oriented application framework?
  284. A.  An object-oriented application framework provides a common set of building
  285.     blocks or "objects" that provide the basic structure for an application.
  286.     It has a set of reusable class libraries that make up a generic application
  287.     that the developer can customize with specific features. The framework
  288.     enables commercial and in-house developers to more quickly and easily
  289.     create applications while providing the freedom to innovate. MacApp,
  290.     Apple's framework, has successfully provided this support for Macintosh
  291.     developers. The Bedrock framework extends state-of-the-art framework
  292.     technology by enabling developers to use one framework to develop
  293.     applications for multiple platforms.
  294.  
  295. Q.  How does an application framework enable cross-platform development?
  296. A.  An object-oriented application framework provides common abstractions for
  297.     underlying platform specific facilities. By providing these higher-level
  298.     abstractions on multiple platforms, programs developed with the framework
  299.     are insulated from the differences between platforms but still maintain the
  300.     native look and feel of the platform. This can be done, because the
  301.     framework is object-oriented, without subscribing to the lowest-common
  302.     denominator but to the highest common multiple, allowing developers to
  303.     concentrate on the platform features they can adopt to differentiate their
  304.     applications.
  305.  
  306. Q.  Who will use the Bedrock cross-platform application framework?
  307. A.  The Bedrock technology is targeted for Macintosh and Windows developers who
  308.     wish to create cross-platform applications, as well as developers of
  309.     single-platform applications. A long-term goal for Apple and Symantec is
  310.     to develop Bedrock technology into the best application framework available
  311.     for development on either the Apple Macintosh or Microsoft Windows
  312.     platforms. When Bedrock is delivered, Apple will propose to MacApp users
  313.     and other developers a process for migrating from MacApp to the Bedrock
  314.     framework.
  315.  
  316. Q.  Why is Apple doing a cross-platform application framework?
  317. A.  --To develop a healthy, Macintosh developer community that creates
  318.     innovative, successful applications on the Macintosh and other platforms
  319.     without complete duplication of programming efforts.
  320.     --To help ensure adoption of new, innovative, Apple technology on the
  321.     Macintosh and other platforms.
  322.  
  323. Q.  How does the framework fit into Apple's software strategy?
  324. A.  The cross-platform framework is an vital piece of Apple's software
  325.     strategy, providing developers with easier access to new technology.
  326.  
  327. Q.  How does the Bedrock framework benefit Macintosh developers?
  328. A.  Bedrock will enable Macintosh developers to create products for multiple
  329.     platforms without incurring the expense of two complete but separate
  330.     development teams. Unlike procedural cross-platform approaches, Bedrock
  331.     will allow developers to concentrate on the meaningful differences of the
  332.     platform, exploiting of the advantages of the Macintosh while developing
  333.     for multiple platforms. Bedrock will also provide for easier adoption of
  334.     new technology as it is encapsulated into the framework features.
  335.  
  336. Q.  Why is Apple entering into an agreement with Symantec?
  337. A.  --To quickly make a cross-platform application framework available to
  338.     developers.
  339.     --Symantec has significant experience with Macintosh and Windows
  340.     development tools and marketing.
  341.     --Symantec is a respected development tools vendor.
  342.     --After considerable investigation by our engineering team it was obvious
  343.     that the Symantec framework is great technology.
  344.     --Symantec has strong, well-established distribution channels.
  345.  
  346. Q.  What is the relationship between Apple and Symantec?
  347. A.  Apple and Symantec signed an agreement to develop and distribute a
  348.     cross-platform application framework. The framework will be built on
  349.     Symantec's Bedrock application framework, a work-in-progress that is
  350.     currently being used for development at Symantec. Apple will contribute
  351.     engineers to the project which will leverage Apple's MacApp technology to
  352.     bring the best possible cross-platform application framework to the market.
  353.     Both companies will make the resulting product available to its customers
  354.     and developers.
  355.  
  356. Q.  How much influence will Apple have on product design/development?
  357. A.  Apple will be able to help drive timely implementation of new technology
  358.     into the framework, enabling framework developers to more easily provide
  359.     new features to customers.
  360.  
  361. Q.  Will the application framework provide a lowest-common denominator set of
  362.     functionality?
  363. A.  No.  The intent is to provide a framework that allows the best possible
  364.     application to be created on any platform and to take advantage of
  365.     platform-specific features. This will allow developers to focus on the
  366.     meaningful differences between platform APIs and cease coping with
  367.     arbitrary differences between platform APIs.
  368.  
  369. Q.  Will Bedrock become an Apple product, or is Apple discontinuing MacApp/MPW?
  370. A.  Apple views Bedrock as the successor to MacApp and has acquired rights to
  371.     distribute both the Macintosh development kit, as well as to optionally
  372.     distribute the runtime system as a DLL with its system software.  Apple
  373.     will be providing Bedrock support to developers and intends to distribute
  374.     the Macintosh version as part of Apple's CD-based E.T.O.: EssentialsoToolso
  375.     Objects tools product.
  376.  
  377. Q.  What are Apple's plans for future releases and support of MacApp?
  378. A.  Because this is a technology announcement some of the product details have
  379.     yet to be determined. After the Apple engineers have an opportunity to
  380.     project the level to which they will be able to contribute to Bedrock we
  381.     will determine if it will be necessary to introduce another version of
  382.     MacApp. If Bedrock assumes all the features of MacApp 3 and more, the need
  383.     for a future version of MacApp is greatly diminished.
  384.  
  385. Q.  Will this framework replace MacApp?
  386. A.  You can think of Bedrock as the successor to MacApp
  387.  
  388. Q.  Why has Apple pushed MacApp for so long and now seems to be changing
  389.     strategy?
  390. A.  We feel very strongly that Bedrock is a continuation of the MacApp
  391.     strategy, bringing the experience and know-how of Apple's MacApp
  392.     development to a cross-platform, application framework.
  393.  
  394. Q.  What is the transition path for MacApp programmers to the new framework?
  395. A.  Continue using MacApp. Bedrock is the successor to MacApp and you can
  396.     expect a transition cost to get to the cross-platform framework. Apple will
  397.     be developing services and tools to help ease the transition effort, but
  398.     some recoding will be necessary. One thing to remember about the transition
  399.     is that although some code will not transfer, many programming skills
  400.     developed for MacApp will apply to Bedrock. If you are already using the
  401.     MacApp framework, the learning curve to adopt Bedrock will be low.
  402.  
  403. Q.  Can I directly translate my MacApp code to Bedrock?
  404. A.  You will not be able to directly translate MacApp code to Bedrock. There
  405.     will be some effort required to make the transition. This is largely due to
  406.     expanding the framework to encompass more than user interface function and
  407.     provide cross-platform development. Apple will be providing services and
  408.     tools to ease the transition effort.
  409.  
  410. Q.  What is the transition path for programmers, who do not use MacApp, to the
  411.     framework?
  412. A.  Macintosh programmers who do not use MacApp and who want to do
  413.     cross-platform development need to look at the options. In most cases they
  414.     may want to start MacApp development because the skills programmers acquire
  415.     during a MacApp development project will transfer well to Bedrock. Further
  416.     benefits will result from easier code transfer.
  417.  
  418. Q.  What programming skills are required to use the framework?
  419. A.  A knowledge of C++ and object-oriented programming techniques.
  420.  
  421. Q.  Is the framework being developed in C++?
  422. A.  Yes the framework is developed in C++ and allows full use of the language's
  423.     features.
  424.  
  425. Q.  What C++ compilers can be used with the framework?
  426. A.  Symantec intends to develop Bedrock to be compatible with most, if not all,
  427.     of the standard C++ compilers available on the target platforms.
  428.  
  429. Q.  Will source code be provided to customers?
  430. A.  That has not yet been determined.
  431.  
  432. Q.  When will the product ship?
  433. A.  A Macintosh and Windows framework will be shipped during the first half of
  434.     1993.
  435.  
  436. Q.  How will the framework be distributed?
  437. A.  The product will be distributed by Apple and Symantec through existing
  438.     distribution channels.
  439.  
  440. Q.  Will it be available on E.T.O.?
  441. A.  Apple intends to distribute an E.T.O. that includes Bedrock.
  442.  
  443. Q.  How can I get seeded with Bedrock? Is there any documentation or
  444.     specifications available today?
  445. A.  Symantec will not be soliciting "Early Developers" until the fall. At that
  446.     time, we will make information about the program available.
  447.  
  448. ************************************ END TEXT***********************************
  449.  
  450. "I must remember to send her a thank-you bomb."
  451.  
  452. David.
  453.  
  454.  
  455. ---------------------------
  456.  
  457. From: zobkiw@world.std.com (Joe Zobkiw)
  458. Subject: ResolveAlias bug?
  459. Date: 24 Jun 92 00:10:31 GMT
  460. Organization: The World Public Access UNIX, Brookline, MA
  461.  
  462. I am writing a backgroundOnly application that calls ResolveAlias on the
  463. alias of a System 7 File Sharing "server". The alias file was made via
  464. the Finder and I simply open it up, grab the "alis" resource and pass
  465. it into ResolveAlias(...) (Yes, I'm detaching the resource)
  466.  
  467. My call to ResolveAlias(...) looks like this:
  468.  
  469. err = ResolveAlias(nil, aliasH, &target, &wasChanged);
  470.  
  471. When I break just before this call and step into the call I end up on a dc.w
  472. instruction that is illegal. I crash. However, I only crash if the server is
  473. NOT mounted at the time of the call. If it _is_ mounted, everything works
  474. fine and dandy.
  475.  
  476. Am I missing some sort of pre-flighting that I need to do? Shouldn't this work
  477. properly? Should it ask to mount the server?
  478.  
  479. Thanks in advance for any information on this.
  480.  
  481. - -- 
  482. - -- joe zobkiw                      Internet: zobkiw@world.std.com
  483. - --                                      AOL: AFL Zobkiw  
  484. - -- mac.synthesis.MIDI.THINK C.OOP
  485. - -- asm.comm.networks.cool tunes...
  486.  
  487. +++++++++++++++++++++++++++
  488.  
  489. From: dodd@apple.com (Mike Dodd)
  490. Date: Wed, 24 Jun 1992 21:26:18 GMT
  491. Organization: Apple Computer Inc.
  492.  
  493. In article <BqBptK.FyK@world.std.com>, zobkiw@world.std.com (Joe Zobkiw) writes:
  494. > I am writing a backgroundOnly application that calls ResolveAlias on the
  495. > alias of a System 7 File Sharing "server". The alias file was made via
  496. > the Finder and I simply open it up, grab the "alis" resource and pass
  497. > it into ResolveAlias(...) (Yes, I'm detaching the resource)
  498. > My call to ResolveAlias(...) looks like this:
  499. > err = ResolveAlias(nil, aliasH, &target, &wasChanged);
  500. > When I break just before this call and step into the call I end up on a dc.w
  501. > instruction that is illegal. I crash. However, I only crash if the server is
  502. > NOT mounted at the time of the call. If it _is_ mounted, everything works
  503. > fine and dandy.
  504.  
  505. One possibility: the alias manager is trying to put up a dialog to mount
  506. the server, and is crashing because InitWindows hasn't been called. If you
  507. are initializing all the toolboxes, though, then I don't know why it would
  508. crash...
  509.  
  510. - -Mike Dodd-
  511. Apple Computer
  512. ** What I say is my opinion. Not Apple's. **
  513.  
  514.  
  515. +++++++++++++++++++++++++++
  516.  
  517. From: gurgle@netcom.com (Pete Gontier)
  518. Date: Thu, 25 Jun 92 05:40:03 GMT
  519. Organization: cellular
  520.  
  521. dodd@apple.com (Mike Dodd) writes:
  522.  
  523. > zobkiw@world.std.com (Joe Zobkiw) writes:
  524. >> I am writing a backgroundOnly application that calls ResolveAlias on the
  525. >> ...
  526. >> When I break just before this call and step into the call I end up on a dc.w
  527. >> instruction that is illegal. I crash. However, I only crash if the server is
  528. >> NOT mounted at the time of the call. If it _is_ mounted, everything works
  529. >> fine and dandy.
  530.  
  531. >One possibility: the alias manager is trying to put up a dialog to mount
  532. >the server, and is crashing because InitWindows hasn't been called. If you
  533. >are initializing all the toolboxes, though, then I don't know why it would
  534. >crash...
  535.  
  536. A background-only application doesn't call InitWindows.
  537.  
  538. This sounds like a job for MatchAlias.
  539.  
  540.  
  541.  
  542.  
  543. - -- 
  544.  Pete Gontier // EC Technology // gurgle@netcom.com
  545.  
  546. +++++++++++++++++++++++++++
  547.  
  548. From: speck@dat.ruc.dk (Peter Speck)
  549. Date: 25 Jun 92 09:19:33 GMT
  550. Organization: Roskilde Universitetscenter, Danmark
  551.  
  552.  
  553.  
  554. In article <BqBptK.FyK@world.std.com> Joe Zobkiw, zobkiw@world.std.com writes:
  555. >err = ResolveAlias(nil, aliasH, &target, &wasChanged);
  556.  
  557. You better use ResolveAliasFileMountOption to avoid getting the dialog. See TechNote#315:
  558. Resolving Alias Files Quietly.
  559.  
  560. Peter Speck
  561.  
  562. +++++++++++++++++++++++++++
  563.  
  564. From: zobkiw@world.std.com (Joe Zobkiw)
  565. Date: 25 Jun 92 12:29:41 GMT
  566. Organization: The World Public Access UNIX, Brookline, MA
  567.  
  568. It seems as though MatchAlias with the kARMNoUI option is for me ;)
  569.  
  570. Thanks for all the help :)
  571.  
  572.  
  573. - -- 
  574. - -- joe zobkiw                      Internet: zobkiw@world.std.com
  575. - --                                      AOL: AFL Zobkiw  
  576. - -- mac.synthesis.MIDI.THINK C.OOP
  577. - -- asm.comm.networks.cool tunes...
  578.  
  579. ---------------------------
  580.  
  581. From: fang@phy.duke.edu (Fang Zhong)
  582. Subject: Mac's equivalent to PC's kbhit()?
  583. Date: 24 Jun 92 03:36:45 GMT
  584.  
  585.  
  586.     I am converting a program from MS QuickC to MPW C.
  587. I need to find a replacement of kbhit() from MS QuickC to
  588. something equivalent in MPW C.  Is it a simple call to a
  589. toolbox function?  Or I have to make it up from several
  590. calls?   Please help me out on this.
  591.     Thanks in advance.
  592.  
  593.  
  594. - -- 
  595.     Fang Zhong                1-919-684-8247
  596.     Duke University Dept. of Physics    fang@phy.duke.edu
  597.     Durham, N.C.      27706            
  598.  
  599. +++++++++++++++++++++++++++
  600.  
  601. From: des7f@virginia.edu (Dave Sappington)
  602. Date: 24 Jun 92 08:37:50 GMT
  603. Organization: Institute for Parallel Computation, UVa
  604.  
  605. fang@phy.duke.edu (Fang Zhong) wrote:
  606. >     I am converting a program from MS QuickC to MPW C.
  607. > I need to find a replacement of kbhit() from MS QuickC to
  608. > something equivalent in MPW C.  Is it a simple call to a
  609. > toolbox function?  Or I have to make it up from several
  610. > calls?   Please help me out on this.
  611.  
  612. I don't know exactly what kbhit() does but you might want to investigate:
  613.  
  614. Boolean KeyWasPressed(char *asciiCode)
  615. {
  616.     EventRecord   evt;
  617.     Boolean       result;
  618. #ifdef DefineThisIfYouDontWantToEatTheEvent
  619.     result = EventAvail(keyDownMask,&evt) == keyDown;
  620. #else
  621.     result = GetNextEvent(keyDownMask,&evt) == keyDown;
  622. #endif
  623.     if (result)
  624.         *asciiCode = evt.message & charCodeMask;
  625.     else
  626.         *asciiCode = 0; /* pick a value, any value ;-) */
  627.     return result;
  628. }
  629.  
  630. Boolean KeyIsDownNow(char *asciiCode)
  631. {
  632.     KeyMap     keys;
  633.     Boolean    result;
  634.     char       asciiCode;
  635.  
  636.     GetKeys(&keys);
  637.     result = (keys[0] & keys[1] & keys[2] & keys[3]) != 0;
  638.     if (result)
  639.         *asciiCode = function of keys bitmap, take a look at KeyTrans();
  640.     else
  641.         *asciiCode = 0;
  642.     return result;
  643. }
  644.  
  645. Dave Sappington                     des7f@virginia.edu
  646. Institute for Parallel Computation  des7f@virginia.bitnet
  647. University of Virginia
  648.  
  649. +++++++++++++++++++++++++++
  650.  
  651. From: dougm@cns.caltech.edu (Doug McNaught)
  652. Organization: California Institute of Technology
  653. Date: Thu, 25 Jun 1992 04:14:50 GMT
  654.  
  655. In article <des7f-240692041032@fuse.ipc.virginia.edu.> des7f@virginia.edu (Dave Sappington) writes:
  656.    fang@phy.duke.edu (Fang Zhong) wrote:
  657.    >     I am converting a program from MS QuickC to MPW C.
  658.    > I need to find a replacement of kbhit() from MS QuickC to
  659.    > something equivalent in MPW C.  Is it a simple call to a
  660.    > toolbox function?  Or I have to make it up from several
  661.    > calls?   Please help me out on this.
  662.  
  663.    I don't know exactly what kbhit() does but you might want to investigate:
  664.  
  665.    Boolean KeyWasPressed(char *asciiCode)
  666.    {
  667.        EventRecord   evt;
  668.        Boolean       result;
  669.    #ifdef DefineThisIfYouDontWantToEatTheEvent
  670.        result = EventAvail(keyDownMask,&evt) == keyDown;
  671.    #else
  672.        result = GetNextEvent(keyDownMask,&evt) == keyDown;
  673.                                                ^^^^^^^^^^
  674. This isn't quite right. GetNextEvent returns a Boolean that basically
  675. says whether anything meaningful happened. You need to test evt.what
  676. against keyDown.
  677.  
  678.    #endif
  679.        if (result)
  680.        *asciiCode = evt.message & charCodeMask;
  681.        else
  682.        *asciiCode = 0; /* pick a value, any value ;-) */
  683.        return result;
  684.    }
  685.  
  686.    Boolean KeyIsDownNow(char *asciiCode)
  687.    {
  688.        KeyMap     keys;
  689.        Boolean    result;
  690.        char       asciiCode;
  691.  
  692.        GetKeys(&keys);
  693.        result = (keys[0] & keys[1] & keys[2] & keys[3]) != 0;
  694.                          ^         ^         ^
  695. You should use && here. 
  696.  
  697.        if (result)
  698.        *asciiCode = function of keys bitmap, take a look at KeyTrans();
  699.        else
  700.        *asciiCode = 0;
  701.        return result;
  702.    }
  703.  
  704. - -doug
  705. - --
  706. Doug McNaught              |"Sadder still to watch it die/ Then never to have
  707. dougm@cns.caltech.edu      | known it/ For you, the blind who once could see/
  708. doug@midget.towson.edu     | The bell tolls for thee..." --Neil Peart
  709.   Nobody approves my opinions! Not even me, sometimes. Read at your own risk.
  710.  
  711. +++++++++++++++++++++++++++
  712.  
  713. From: d88-jwa@dront.nada.kth.se (Jon W{tte)
  714. Organization: Royal Institute of Technology, Stockholm, Sweden
  715. Date: Mon, 29 Jun 1992 11:04:41 GMT
  716.  
  717. ..caltech.edu> dougm@cns.caltech.edu (Doug McNaught) writes:
  718.  
  719.       result = EventAvail(keyDownMask,&evt) == keyDown;
  720.  
  721. No, that won't work.
  722. I would say:
  723.  
  724.     if ( EventAvail ( keyDownMask | autoKeyMask , & evt ) ) {
  725.  
  726.         result = ( evt . what == keyDown || evt . what == autoKey ) ;
  727.     }
  728.  
  729.  
  730.  
  731.       GetKeys(&keys);
  732.       result = (keys[0] & keys[1] & keys[2] & keys[3]) != 0;
  733.                 ^         ^         ^
  734.    You should use && here. 
  735.  
  736. Remind me not to hire these guys :-)
  737.  
  738. No, you should use "|" or "||" - using & or using && will VERY SELDOM
  739. yield true, since you would have to hold down one key from every 32
  740. key codes for it to work...
  741.  
  742. - -- 
  743.          Jon W{tte, Svartmangatan 18, S-111 29 Stockholm, Sweden
  744.  
  745.  "Difficult, obscure, incoherent and nonstandard does not imply more power."
  746.                - Andrew Kass in comp.sys.mac.hardware
  747.  
  748. +++++++++++++++++++++++++++
  749.  
  750. From: dougm@cns.caltech.edu (Doug McNaught)
  751. Organization: California Institute of Technology
  752. Date: Tue, 30 Jun 1992 08:46:44 GMT
  753.  
  754. In article <D88-JWA.92Jun29120441@dront.nada.kth.se> d88-jwa@dront.nada.kth.se (Jon W{tte) writes:
  755.  
  756.    .caltech.edu> dougm@cns.caltech.edu (Doug McNaught) writes:
  757.  
  758.          result = EventAvail(keyDownMask,&evt) == keyDown;
  759.  
  760.    No, that won't work.
  761.  
  762. This is not my mistake; it's his (the original poster's). Re-check
  763. your attribution.
  764.  
  765.    I would say:
  766.  
  767.    if ( EventAvail ( keyDownMask | autoKeyMask , & evt ) ) {
  768.       result = ( evt . what == keyDown || evt . what == autoKey ) ;
  769.    }
  770.  
  771. So would I.
  772.  
  773.          GetKeys(&keys);
  774.          result = (keys[0] & keys[1] & keys[2] & keys[3]) != 0;
  775.                    ^         ^         ^
  776.       You should use && here. 
  777.  
  778.    Remind me not to hire these guys :-)
  779.  
  780.    No, you should use "|" or "||" - using & or using && will VERY SELDOM
  781.    yield true, since you would have to hold down one key from every 32
  782.    key codes for it to work...
  783.  
  784. You're definitely right here. I got hung up on the "bitwise-vs-logical"
  785. error and missed the "and-vs-or" mistake. But, it's something I'dve
  786. caught pretty fast if I were actually dealing with the code.
  787. So, do I get the job? :)
  788.  
  789. - -doug
  790.  
  791. - --
  792. Doug McNaught              |"Sadder still to watch it die/ Then never to have
  793. dougm@cns.caltech.edu      | known it/ For you, the blind who once could see/
  794. doug@midget.towson.edu     | The bell tolls for thee..." --Neil Peart
  795.   Nobody approves my opinions! Not even me, sometimes. Read at your own risk.
  796.  
  797. ---------------------------
  798.  
  799. From: hurf@theory.TC.Cornell.EDU (Hurf Sheldon)
  800. Subject: Speech Generation info wanted
  801. Organization: Cornell Theory Center
  802. Date: Wed, 24 Jun 1992 15:31:25 GMT
  803.  
  804.     I would like a brain dump to get current on what's available in 
  805.     speech generation applications runnable on a power book or laptop.
  806.  
  807.     My motivation:
  808.     My good friend (and mother in law) is a victim of ALS which
  809.     causes a slow deterioration in the muscle tissue, most notably
  810.     the larynx and esophagus. As she was frustrated at speaking
  811.     recently she said "Can't you get me a keyboard I can type what I
  812.     want to say and have it come out spoken? I can still type,
  813.     I can't talk." Of course, she thinks I can do anything with
  814.     computers...
  815.  
  816.  
  817.     Needless to say this started me thinking... I am quite willing to
  818.     hack away at things.
  819.  
  820.  
  821. thanks in advance
  822.  
  823. hurf
  824.  
  825. - -- 
  826.      Hurf Sheldon             Network: hurf@graphics.cornell.edu
  827.      Program of Computer Graphics     Phone:   607 255 6713
  828.  
  829.      580 Eng. Theory Center, Cornell University, Ithaca, N.Y. 14853  
  830.  
  831. +++++++++++++++++++++++++++
  832.  
  833. From: psfales@cbnewsc.cb.att.com (Peter Fales)
  834. Date: 26 Jun 92 01:35:18 GMT
  835. Organization: AT&T
  836.  
  837. In article <1992Jun24.153125.28865@tc.cornell.edu> hurf@theory.TC.Cornell.EDU (Hurf Sheldon) writes:
  838. >    I would like a brain dump to get current on what's available in 
  839. >    speech generation applications runnable on a power book or laptop.
  840. >
  841. >    My motivation:
  842. >    My good friend (and mother in law) is a victim of ALS which
  843. >    causes a slow deterioration in the muscle tissue, most notably
  844. >    the larynx and esophagus. As she was frustrated at speaking
  845. >    recently she said "Can't you get me a keyboard I can type what I
  846. >    want to say and have it come out spoken? I can still type,
  847. >    I can't talk." Of course, she thinks I can do anything with
  848. >    computers...
  849.  
  850. There are several approaches to this, but I suggest the following
  851. because 1) It's relatively cheap, 2) relatively simple, and 3) I'm
  852. pretty sure it would work.  I have been playing recently with the
  853. speech synthesis module made by RC systems.  All you need is a 5 volt
  854. power supply, a small speaker, and a cable to connect it to the PC's
  855. parallel port.  It looks to the computer like a printer and will "speak"
  856. anything that is sent to the printer port.   The text-to-speech 
  857. algorithms are really quite good, and the provide some ways to tweek
  858. it if you need to.
  859.  
  860. The RC System V8600 costs around $150 in single quantities.   
  861.  
  862. RC Systems can be reached at
  863.     
  864. 121 West Winesap Road
  865. Bothell, WA 98012
  866. (206)672-6909.
  867.  
  868.  
  869. I have no connection with RC systems except as a satisfied customer.
  870.  
  871. - -- 
  872. Peter Fales            AT&T, Room 6M-234
  873. N9IYJ                    2000 N. Naperville Rd.
  874. UUCP:    ...att!ihlpb!psfales    Naperville, IL 60566
  875. Domain: psfales@ihlpb.att.com    work:    (708) 979-8031
  876.  
  877. ---------------------------
  878.  
  879. From: jerry@uni-paderborn.de (Gerald Siek)
  880. Subject: How to modify a resource in my application?
  881. Date: 24 Jun 92 16:40:22 GMT
  882. Organization: Uni-GH Paderborn
  883.  
  884. Hello wizards !
  885.  
  886. How can I modify an application-defined resource while the application runs?
  887. I have tried the following code (suggested in IM I, page 123):
  888.  
  889. Handle    TheResource;
  890.  
  891.     TheResource = GetResource(  'pref', 128 )    /* Get the old resource */
  892.  
  893.     SomeModifcations(TheResource);    /* Apply my modifications */
  894.  
  895.     HNoPurge(TheResource);        /* Make res. temporarily unpurgable */
  896.     ChangedResource(TheResource);    /* Mark it as changed */
  897.     WriteResource(TheResource);    /* Write it back */
  898.     HPurge(TheResource);        /* Make res. purgeable again */
  899.  
  900. The modification routine does not call any system routines, it just changes
  901. a few bytes manually.
  902.  
  903. This code simply does not work.  Strange enough, it writes the text of my
  904. apple menu (!) into the resource and deletes the apple menu, probably because
  905. of some side-effects while using the handle.  Have I made a dumb mistake?   
  906. Any help is greatly appreciated!
  907.  
  908. Thanks!
  909.     Jerry
  910. - -- 
  911.   Gerald Siek  -  jerry@uni-paderborn.de  -  University of Paderborn, Germany
  912.  
  913. +++++++++++++++++++++++++++
  914.  
  915. Organization: University of Illinois at Chicago
  916. Date: Wednesday, 24 Jun 1992 21:25:37 CDT
  917. From: <U11852@uicvm.uic.edu>
  918.  
  919.  Gerald Siek asks:
  920. >>>>>>
  921. How can I modify an application-defined resource while the application runs?
  922. I have tried the following code (suggested in IM I, page 123):
  923. [code sample deleted...]
  924. >>>>>>
  925. No, for God's sake! the proper sequence of calls should be as follows:
  926. h:=GetResource('prec',128);
  927. HLock(h);
  928. SomeModifications(h); {possibly dereferencing the handle...h^^}
  929. HUnlock(h);
  930. WriteResource(h);
  931. .....
  932. The Resource manager will ALWAYS be nice to you when you "enclose" ONLY
  933. your modification part with HLock/HUnLock-HNoPurge/HPurge and operate
  934. on the resources AS RELOCATABLE HANDLES ALWAYS. NEVER LOCKED OR NOPURGED.
  935. Note, on the code above, the call to WriteResource operates on a floating
  936. NON-locked, NON-nonpurged handle.
  937. Hope that helps.
  938. John Galidakis/MathGradUIC
  939.  "Who am I, What am I?  As I am, I am not.  But as we are, I AM.  And
  940.  you my creation, My Perfect Love is your Perfect Freedom. And I will be
  941.  with you forever and ever, until the End, and then forever more." -
  942.  
  943. +++++++++++++++++++++++++++
  944.  
  945. Organization: University of Illinois at Chicago
  946. Date: Wednesday, 24 Jun 1992 21:34:38 CDT
  947. From: <U11852@uicvm.uic.edu>
  948.  
  949.  Herr, oops; I forgot the ChangedResource(h); call just before the
  950. WriteResource(h) call. The correct sequence is then:
  951. h:=GetResource(prec,128);
  952. HLock(h);
  953. Modify(h); {here}
  954. HUnLock(h);
  955. ChangedResource(h);   {mark changes permanent}
  956. WriteResource(h);     {Update resource file}
  957. Sorry for the mistake.
  958. John Galidakis/MathGradUIC
  959.  
  960. ---------------------------
  961.  
  962. From: mmalson@x102a.ess.harris.com (Mark Malson)
  963. Subject: FTP Source?
  964. Date: 24 Jun 92 18:31:12 GMT
  965. Organization: Harris Corporation, GCSD, Melbourne, FL
  966.  
  967. Sorry if this is a FAQ...
  968.  
  969. Where can I get a (large) snippet of code that implements FTP? I
  970. have searched and searched for NCSA Telnet source (I THOUGHT it
  971. was public domain) and can't find it.
  972.  
  973. I have a need to transfer files via FTP in a really strange way; I
  974. can't use any existing FTP programs to do it, so I have to adapt
  975. one.
  976.  
  977. - - Mark
  978.  
  979. +++++++++++++++++++++++++++
  980.  
  981. From: jbrowne@void.ncsa.uiuc.edu (Jim Browne)
  982. Organization: University of Illinois at Urbana
  983. Date: Wed, 24 Jun 1992 23:21:03 GMT
  984.  
  985. mmalson@x102a.ess.harris.com (Mark Malson) writes:
  986.  
  987.  
  988. >I
  989. >have searched and searched for NCSA Telnet source (I THOUGHT it
  990. >was public domain) and can't find it.
  991.  
  992. Just because you can't find the source doesn't mean it's not PD.  It is PD, and
  993. as they say on TV "It's in there!(tm)"
  994.  
  995. How about trying ftpbin.c?  You think that might work? ;)
  996.  
  997. - -- 
  998. Jim Browne                                          | jbrowne@ncsa.uiuc.edu  |
  999. NCSA/STG System Administrator                       | stgadmin@ncsa.uiuc.edu |
  1000. System Administration: Where the fun never ends...  | (217) 244-7798         |
  1001. "I was ionized... but now I'm better." - Bukaroo Banzai
  1002.  
  1003. +++++++++++++++++++++++++++
  1004.  
  1005. From: sanguish@digifix.com (Scott Anguish)
  1006. Organization: Digital Fix Development
  1007. Date: Thu, 25 Jun 1992 02:28:37 GMT
  1008.  
  1009. Jim Browne writes
  1010. > mmalson@x102a.ess.harris.com (Mark Malson) writes:
  1011. > >I
  1012. > >have searched and searched for NCSA Telnet source (I THOUGHT it
  1013. > >was public domain) and can't find it.
  1014.  
  1015.     Probably the easiest thing would be to get the VersaTerm package.  I  
  1016. think it comes with Comm ToolBox clients, and you could just communicate with  
  1017. the CTB.  Thats documented, should be debugged... etc..
  1018.  
  1019.     Give Versaterm a call.  There are also other FTP CommToolBox options.
  1020.  
  1021. - -- 
  1022. - - Scott Anguish -
  1023. sanguish@digifix.com (NextMail)
  1024.  
  1025.  
  1026. +++++++++++++++++++++++++++
  1027.  
  1028. From: timm@void.ncsa.uiuc.edu (Coffee Junkie)
  1029. Organization: University of Illinois at Urbana
  1030. Date: Thu, 25 Jun 1992 04:20:00 GMT
  1031.  
  1032. Scott Anguish writes
  1033. > Jim Browne writes
  1034. > > mmalson@x102a.ess.harris.com (Mark Malson) writes:
  1035. > > 
  1036. > > 
  1037. > > >I
  1038. > > >have searched and searched for NCSA Telnet source (I THOUGHT it
  1039. > > >was public domain) and can't find it.
  1040. > > 
  1041. >     Probably the easiest thing would be to get the VersaTerm package.  I  
  1042. > think it comes with Comm ToolBox clients, and you could just communicate  
  1043. with  
  1044. > the CTB.  Thats documented, should be debugged... etc..
  1045. >     Give Versaterm a call.  There are also other FTP CommToolBox options.
  1046. > -- 
  1047. > - Scott Anguish -
  1048. > sanguish@digifix.com (NextMail)
  1049.  
  1050. Hmm...sorry, I missed the first post...the source is available via anonymous  
  1051. ftp from ftp.ncsa.uiuc.edu.
  1052.  
  1053. - --
  1054. Tim McClarren     | "...a bajillion brilliant Jobsian lithium licks."
  1055. timm@ncsa.uiuc.edu|
  1056. (217)244-0015     |
  1057.  
  1058. +++++++++++++++++++++++++++
  1059.  
  1060. From: jbrowne@void.ncsa.uiuc.edu (Jim Browne)
  1061. Date: 25 Jun 92 19:24:16 GMT
  1062. Organization: University of Illinois at Urbana
  1063.  
  1064. timm@void.ncsa.uiuc.edu (Coffee Junkie) writes:
  1065.  
  1066. >Scott Anguish writes
  1067. >> Jim Browne writes
  1068. >> > mmalson@x102a.ess.harris.com (Mark Malson) writes:
  1069. >> > 
  1070. >> > 
  1071. >> > >I
  1072. >> > >have searched and searched for NCSA Telnet source (I THOUGHT it
  1073. >> > >was public domain) and can't find it.
  1074. >> > 
  1075. >> 
  1076.  
  1077. Doh!  Forgive me, I read that as I've searched THE NCSA Telnet source...
  1078.  
  1079. I need a vacation.
  1080.  
  1081. - -- 
  1082. Jim Browne                                          | jbrowne@ncsa.uiuc.edu  |
  1083. NCSA/STG System Administrator                       | stgadmin@ncsa.uiuc.edu |
  1084. System Administration: Where the fun never ends...  | (217) 244-7798         |
  1085. "I was ionized... but now I'm better." - Bukaroo Banzai
  1086.  
  1087. ---------------------------
  1088.  
  1089. From: egw@utkvx4.utk.edu (Wolpert, Edward Greenwal)
  1090. Subject: SFRead question. (checked FAQ)
  1091. Organization: University of Tennessee Computing Center
  1092. Date: Wed, 24 Jun 1992 19:52:00 GMT
  1093.  
  1094. This is (I hope) a simple question... I'm having trouble with the FSRead
  1095. command.  When I call it, I get only garbage.  I'm using the following
  1096. routine in think pascal 4.0...
  1097.  
  1098.  
  1099. Count:= sizeof (String[1]Var);
  1100. ErrCode:= FSRead(FileRefNum, Count, @String[1]Var);
  1101.  
  1102.     I'm dealing with a text file, and String[1]Var is a variable of 
  1103. String[1] type.  (of course.)  However, String[1]Var becomes garbage, a 
  1104. line of random length, with part of my desired text read in.  I do a setFpos
  1105. command before, so I know it's not that.  Can anyone help?  
  1106.  
  1107.  
  1108.         Virtually,
  1109.         Edward Wolpert
  1110.  
  1111. - -------------------------------------------------  EGW@UTKVX
  1112. Vladimir: It's Godot! At last! Gogo! It's Godot! | EGW@utkvx.utk.edu
  1113.       We're saved!                           | I'm responsible for my
  1114. Estragon: I'm in hell!                           | actions, are you
  1115.         -S. Beckett                      | responsible for yours?
  1116. - -------------------------------------------------  
  1117.  
  1118.  
  1119. +++++++++++++++++++++++++++
  1120.  
  1121. Organization: University of Illinois at Chicago
  1122. Date: Wednesday, 24 Jun 1992 21:41:31 CDT
  1123. From: <U11852@uicvm.uic.edu>
  1124.  
  1125.  Wolpert, Edward Greenwal writes:
  1126. >>>>>>>
  1127. Count:= sizeof (String[1]Var);
  1128. ErrCode:= FSRead(FileRefNum, Count, @String[1]Var);
  1129. <<<<<<<
  1130. This is a quite common programming bug that used to byte me on a regular
  1131. basis. AVOID USING A STRING VAR BUFFER on your FSRead calls. Use a
  1132. "buffer:packed array[1..n] of char; or even a single char"; using a
  1133. string will almost always crash, unless: You pass the pointer to the
  1134. first byte of the string which is at an ODD address so you will crash again.
  1135. (if str:string[n], then the string starts at an even boundary, that is
  1136. str[0] (length byte) but @str[1] is odd. Avoid all this mess, and use
  1137. a simple @buffer[1].
  1138. Then transfer your buffer to your string, possibly using a blockMove, or
  1139. a Pascal loop.
  1140. Hope this helps
  1141. John Galidakis/MathGradUIC
  1142.  "Who am I, What am I?  As I am, I am not.  But as we are, I AM.  And
  1143.  you my creation, My Perfect Love is your Perfect Freedom. And I will be
  1144.  with you forever and ever, until the End, and then forever more." -
  1145.  
  1146. ---------------------------
  1147.  
  1148. End of C.S.M.P. Digest
  1149. **********************
  1150.